目前主要支持的oauth协议
一、 密码模式
密码模式(password)主要针对自家应用,可信度较高,所以可以使用简便安全共存的模式,操作步骤如下
- 调用 http://localhost/blade-auth/oauth/token 传入对应的参数
请求头:
Tenant-Id:000000(替换为对应的租户id)Authorization : Basic c3dvcmQ6c3dvcmRfc2VjcmV0("c3dvcmQ6c3dvcmRfc2VjcmV0"为clientId:clientSecret串转换为的base64编码,需要和blade_client表的对应字段相匹配)
表单:
grant_type:passwordscope:allusername:adminpassword:21232f297a57a5a743894a0e4a801fc3注意:其中的
sword和sword_secret分别是blade_client表client_id和client_secret字段值,请一一对应。注意:框架对密码进行了二次加密,由前端调用传参需要现将原密码进行md5加密后再进行传递,原密码是
admin,所以md5加密后是21232f297a57a5a743894a0e4a801fc3,具体如下
- 若想避免填写错误,快速导入参数,可以参考这个帖子:https://sns.bladex.vip/article-14982.html
调用认证接口返回结果



二、刷新token
刷新token(refresh_token)存在时间会比access_token更长,主要用于access_token快过期的时候,调用oauth接口获取到刷新后的token以达到token续期的目的
- 调用 http://localhost/blade-auth/oauth/token 传入对应的参数
请求头:
Tenant-Id:000000(替换为对应的租户id)Authorization : Basic c3dvcmQ6c3dvcmRfc2VjcmV0("c3dvcmQ6c3dvcmRfc2VjcmV0"为clientId:clientSecret串转换为的base64编码)表单:
grant_type:refresh_tokenscope:allrefresh_token:eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJ0ZXN0IjoidGVzdCIsInVzZXJfbmFtZSI6ImFkbWluIiwic2NvcGUiOlsiYWxsIl0sImV4cCI6MTU1MzE2MTA5NSwiYXV0aG9yaXRpZXMiOlsiUk9MRV9VU0VSIl0sImp0aSI6IjE0YmMyYjAyLTgxY2UtNDFiNC04ZTI3LTA5YWE0ZmU4ZWMwYyIsImNsaWVudF9pZCI6ImJsYWRlIn0.jTmioQDq-fSNNn7YCwl3wP0JE-etSWtzLDe545mDbP4
三、 授权码模式
授权码模式(authorization_code)主要针对第三方应用,是最为复杂也最为安全的一种模式,操作步骤如下
- 打开浏览器访问如下地址:http://localhost:8100/oauth/authorize?tenant_id=000000&client_id=sword&redirect_uri=http://localhost:8888&code=233333&response_type=code
- 输入用户名为
admin,密码为md5(admin)也就是上文提到的21232f297a57a5a743894a0e4a801fc3
- 点击Authorize按钮,通过授权

- 系统自动跳转至http://localhost:8888并加上了code参数

- 获取跳转后的code值(http://localhost:8888/?code=VhYNLR)之后,调用 http://localhost/blade-auth/oauth/token 传入对应的参数
- 请求头:
Tenant-Id:000000(替换为对应的租户id)Authorization : Basic c3dvcmQ6c3dvcmRfc2VjcmV0("c3dvcmQ6c3dvcmRfc2VjcmV0"为clientId:clientSecret串转换为的base64编码,需要和blade_client表的对应字段相匹配)
- 表单:
grant_type:authorization_codescope:allcode:VhYNLRredirect_uri:http://localhost:8888 - 注意:
其中的sword和sword_secret分别是blade_client表client_id和client_secret字段值,请一一对应。
其中的http://localhost:8888是blade_client表的web_server_redirect_uri字段值,也请一一对应。
四、获取到token后如何获取用户信息
- 拼接请求头
Authorization :bearer eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJ0ZXN0IjoidGVzdCIsInVzZXJfbmFtZSI6ImFkbWluIiwic2NvcGUiOlsiYWxsIl0sImV4cCI6MTU1MzE2MTA5NSwiYXV0aG9yaXRpZXMiOlsiUk9MRV9VU0VSIl0sImp0aSI6IjE0YmMyYjAyLTgxY2UtNDFiNC04ZTI3LTA5YWE0ZmU4ZWMwYyIsImNsaWVudF9pZCI6ImJsYWRlIn0.jTmioQDq-fSNNn7YCwl3wP0JE-etSWtzLDe545mDbP4 - 调用 http://localhost/blade-auth/oauth/user-info 既可获得对应用户信息
